{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import tensorflow as tf"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Tensorflow Version: 2.0.0-alpha0\n"
     ]
    }
   ],
   "source": [
    "print('Tensorflow Version: {}'.format(tf.__version__))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "(train_image, train_lable), (test_image, test_label) = tf.keras.datasets.fashion_mnist.load_data()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(60000, 28, 28)"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_image.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(60000,)"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_lable.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "((10000, 28, 28), (10000,))"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test_image.shape, test_label.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.image.AxesImage at 0x23d20aab908>"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.imshow(train_image[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "255"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.max(train_image[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([9, 0, 0, ..., 3, 0, 5], dtype=uint8)"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_lable"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "train_image = train_image/255\n",
    "test_image = test_image/255"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(60000, 28, 28)"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_image.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "model = tf.keras.Sequential()\n",
    "model.add(tf.keras.layers.Flatten(input_shape=(28,28)))  # 28*28\n",
    "model.add(tf.keras.layers.Dense(128, activation='relu'))\n",
    "model.add(tf.keras.layers.Dense(10, activation='softmax'))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Model: \"sequential_1\"\n",
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "flatten_1 (Flatten)          (None, 784)               0         \n",
      "_________________________________________________________________\n",
      "dense_4 (Dense)              (None, 128)               100480    \n",
      "_________________________________________________________________\n",
      "dense_5 (Dense)              (None, 10)                1290      \n",
      "=================================================================\n",
      "Total params: 101,770\n",
      "Trainable params: 101,770\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "model.summary()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [],
   "source": [
    "model.compile(optimizer='adam',\n",
    "              loss='sparse_categorical_crossentropy',\n",
    "              metrics=['acc']\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/5\n",
      "60000/60000 [==============================] - 2s 39us/sample - loss: 0.5014 - acc: 0.8231\n",
      "Epoch 2/5\n",
      "60000/60000 [==============================] - 2s 36us/sample - loss: 0.3730 - acc: 0.8665\n",
      "Epoch 3/5\n",
      "60000/60000 [==============================] - 2s 36us/sample - loss: 0.3371 - acc: 0.87580s - loss: 0.3421 - a\n",
      "Epoch 4/5\n",
      "60000/60000 [==============================] - 2s 36us/sample - loss: 0.3121 - acc: 0.8849\n",
      "Epoch 5/5\n",
      "60000/60000 [==============================] - 2s 36us/sample - loss: 0.2952 - acc: 0.8918\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<tensorflow.python.keras.callbacks.History at 0x1bbb608f978>"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model.fit(train_image, train_lable, epochs=5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "10000/10000 [==============================] - 0s 26us/sample - loss: 0.3422 - acc: 0.8763\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "[0.34224417579174043, 0.8763]"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model.evaluate(test_image, test_label)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([9, 0, 0, ..., 3, 0, 5], dtype=uint8)"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_lable"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "beijing [1, 0, 0]\n",
    "shanghai [0, 1, 0]\n",
    "shenzhen  [0, 0, 1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "train_label_onehot = tf.keras.utils.to_categorical(train_lable)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0., 0., 0., 0., 0., 1., 0., 0., 0., 0.], dtype=float32)"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train_label_onehot[-1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([9, 2, 1, ..., 8, 1, 5], dtype=uint8)"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test_label"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [],
   "source": [
    "test_label_onehot = tf.keras.utils.to_categorical(test_label)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0., 0., 0., ..., 0., 0., 1.],\n",
       "       [0., 0., 1., ..., 0., 0., 0.],\n",
       "       [0., 1., 0., ..., 0., 0., 0.],\n",
       "       ...,\n",
       "       [0., 0., 0., ..., 0., 1., 0.],\n",
       "       [0., 1., 0., ..., 0., 0., 0.],\n",
       "       [0., 0., 0., ..., 0., 0., 0.]], dtype=float32)"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test_label_onehot"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [],
   "source": [
    "model = tf.keras.Sequential()\n",
    "model.add(tf.keras.layers.Flatten(input_shape=(28,28)))  # 28*28\n",
    "model.add(tf.keras.layers.Dense(128, activation='relu'))\n",
    "model.add(tf.keras.layers.Dense(10, activation='softmax'))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [],
   "source": [
    "model.compile(optimizer=tf.keras.optimizers.Adam(learning_rate=0.01),\n",
    "              loss='categorical_crossentropy',\n",
    "              metrics=['acc']\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/5\n",
      "60000/60000 [==============================] - 2s 38us/sample - loss: 0.4860 - acc: 0.82650s - loss: 0.4868 - acc: 0.826\n",
      "Epoch 2/5\n",
      "60000/60000 [==============================] - 2s 37us/sample - loss: 0.4251 - acc: 0.8463\n",
      "Epoch 3/5\n",
      "60000/60000 [==============================] - 2s 39us/sample - loss: 0.4116 - acc: 0.8524\n",
      "Epoch 4/5\n",
      "60000/60000 [==============================] - 2s 37us/sample - loss: 0.3998 - acc: 0.8582\n",
      "Epoch 5/5\n",
      "60000/60000 [==============================] - 2s 40us/sample - loss: 0.3917 - acc: 0.8597\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<tensorflow.python.keras.callbacks.History at 0x1bbb666e7b8>"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model.fit(train_image, train_label_onehot, epochs=5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [],
   "source": [
    "predict = model.predict(test_image)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(10000, 28, 28)"
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test_image.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(10000, 10)"
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "predict.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([7.7417062e-05, 1.2555851e-07, 5.2015298e-06, 3.9063170e-06,\n",
       "       6.1778355e-06, 1.3308496e-02, 5.2028918e-05, 1.2039219e-02,\n",
       "       6.5957895e-05, 9.7444147e-01], dtype=float32)"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "predict[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "9"
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.argmax(predict[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "9"
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "test_label[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [],
   "source": [
    "model = tf.keras.Sequential()\n",
    "model.add(tf.keras.layers.Flatten(input_shape=(28,28)))  # 28*28\n",
    "model.add(tf.keras.layers.Dense(128, activation='relu'))\n",
    "model.add(tf.keras.layers.Dropout(0.5))\n",
    "model.add(tf.keras.layers.Dense(128, activation='relu'))\n",
    "model.add(tf.keras.layers.Dropout(0.5))\n",
    "model.add(tf.keras.layers.Dense(128, activation='relu'))\n",
    "model.add(tf.keras.layers.Dropout(0.5))\n",
    "model.add(tf.keras.layers.Dense(10, activation='softmax'))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Model: \"sequential_7\"\n",
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "flatten_7 (Flatten)          (None, 784)               0         \n",
      "_________________________________________________________________\n",
      "dense_30 (Dense)             (None, 128)               100480    \n",
      "_________________________________________________________________\n",
      "dropout (Dropout)            (None, 128)               0         \n",
      "_________________________________________________________________\n",
      "dense_31 (Dense)             (None, 128)               16512     \n",
      "_________________________________________________________________\n",
      "dropout_1 (Dropout)          (None, 128)               0         \n",
      "_________________________________________________________________\n",
      "dense_32 (Dense)             (None, 128)               16512     \n",
      "_________________________________________________________________\n",
      "dropout_2 (Dropout)          (None, 128)               0         \n",
      "_________________________________________________________________\n",
      "dense_33 (Dense)             (None, 10)                1290      \n",
      "=================================================================\n",
      "Total params: 134,794\n",
      "Trainable params: 134,794\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "model.summary()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [],
   "source": [
    "model.compile(optimizer=tf.keras.optimizers.Adam(learning_rate=0.001),\n",
    "              loss='categorical_crossentropy',\n",
    "              metrics=['acc']\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train on 60000 samples, validate on 10000 samples\n",
      "Epoch 1/10\n",
      "60000/60000 [==============================] - 5s 75us/sample - loss: 0.8755 - acc: 0.6750 - val_loss: 0.5191 - val_acc: 0.8119\n",
      "Epoch 2/10\n",
      "60000/60000 [==============================] - 4s 69us/sample - loss: 0.6234 - acc: 0.7782 - val_loss: 0.4792 - val_acc: 0.8280\n",
      "Epoch 3/10\n",
      "60000/60000 [==============================] - 4s 68us/sample - loss: 0.5679 - acc: 0.7974 - val_loss: 0.4564 - val_acc: 0.8369\n",
      "Epoch 4/10\n",
      "60000/60000 [==============================] - 4s 66us/sample - loss: 0.5454 - acc: 0.8048 - val_loss: 0.4445 - val_acc: 0.8386\n",
      "Epoch 5/10\n",
      "60000/60000 [==============================] - 4s 67us/sample - loss: 0.5262 - acc: 0.8145 - val_loss: 0.4337 - val_acc: 0.8456\n",
      "Epoch 6/10\n",
      "60000/60000 [==============================] - 4s 64us/sample - loss: 0.5139 - acc: 0.8161 - val_loss: 0.4337 - val_acc: 0.8415\n",
      "Epoch 7/10\n",
      "60000/60000 [==============================] - 4s 65us/sample - loss: 0.5052 - acc: 0.8214 - val_loss: 0.4223 - val_acc: 0.8391\n",
      "Epoch 8/10\n",
      "60000/60000 [==============================] - 4s 68us/sample - loss: 0.4983 - acc: 0.8243 - val_loss: 0.4177 - val_acc: 0.8512\n",
      "Epoch 9/10\n",
      "60000/60000 [==============================] - 5s 75us/sample - loss: 0.4916 - acc: 0.8256 - val_loss: 0.4143 - val_acc: 0.8498\n",
      "Epoch 10/10\n",
      "60000/60000 [==============================] - 4s 74us/sample - loss: 0.4884 - acc: 0.8286 - val_loss: 0.4225 - val_acc: 0.8451\n"
     ]
    }
   ],
   "source": [
    "history = model.fit(train_image, train_label_onehot, \n",
    "                    epochs=10, \n",
    "                    validation_data=(test_image, test_label_onehot))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "dict_keys(['loss', 'acc', 'val_loss', 'val_acc'])"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "history.history.keys()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x23d3f1e01d0>"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(history.epoch, history.history.get('acc'), label='acc')\n",
    "plt.plot(history.epoch, history.history.get('val_acc'), label='val_acc')\n",
    "plt.legend()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x23d3f210e10>"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(history.epoch, history.history.get('loss'), label='loss')\n",
    "plt.plot(history.epoch, history.history.get('val_loss'), label='val_loss')\n",
    "plt.legend()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x23d1e50b320>"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXoAAAD4CAYAAADiry33AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAgAElEQVR4nO3deXzTVb7/8ddJ90JLW7rSHSi00EILBQQEZFEKyKbMiLuOy89xHWf0qqOz6SyOznW2y+h1HLfrAojKIAo4yqqgUKC0hZZVukMXKBRoaZuc3x/fAAULtDTlmyaf5+ORByT5Jvkkyjsn55zvOUprjRBCCNdlMbsAIYQQnUuCXgghXJwEvRBCuDgJeiGEcHES9EII4eI8zS7gXKGhoTohIcHsMoQQokvZvHlztdY6rLX7nC7oExISyM7ONrsMIYToUpRSRee7T7puhBDCxUnQCyGEi5OgF0IIF+d0ffRCCPfU1NREaWkpDQ0NZpfi1Hx9fYmJicHLy6vNj5GgF0I4hdLSUgICAkhISEApZXY5TklrTU1NDaWlpSQmJrb5cdJ1I4RwCg0NDfTs2VNC/gKUUvTs2bPdv3ok6IUQTkNC/uIu5TNymaCvPdHIX7/YTeGBo2aXIoQQTsVlgl6hmLdqDws3lZpdihCii+revbvZJXQKlwn6Hv5ejE8OY8m2cpqtNrPLEUIIp+EyQQ8wOyOa6mMn+XpvjdmlCCG6MK01jz/+OKmpqaSlpbFgwQIAKioqGDt2LOnp6aSmprJu3TqsVit33HHH6WP//Oc/m1z997nU9MrxyeEE+nry8ZZSxvVrdW0fIUQX8JtPtrOj3LHjbQN6BfKr6QPbdOxHH31ETk4O27Zto7q6mmHDhjF27Fjee+89Jk+ezNNPP43VauXEiRPk5ORQVlZGfn4+ALW1tQ6t2xFcqkXv4+nBtEG9WLH9IMdPNptdjhCii/rqq6+48cYb8fDwICIignHjxrFp0yaGDRvGG2+8wa9//Wvy8vIICAigd+/e7Nu3j4ceeojly5cTGBhodvnf41ItejC6b97fWMznOw4wOyPG7HKEEJegrS3vzqK1bvX2sWPHsnbtWj799FNuvfVWHn/8cW677Ta2bdvGihUrmDdvHgsXLuT111+/zBVfmEu16AEy44OJDvLjoy1lZpcihOiixo4dy4IFC7BarVRVVbF27VqGDx9OUVER4eHh3HPPPdx1111s2bKF6upqbDYb119/Pc899xxbtmwxu/zvcbkWvcWimJ0RzT9W76HyaAPhgb5mlySE6GJmz57Nhg0bGDx4MEopXnjhBSIjI3nrrbd48cUX8fLyonv37rz99tuUlZVx5513YrMZs/3+8Ic/mFz996nz/UQxS2Zmpu7oxiN7KuuY9NJanpmWwt1jejuoMiFEZyooKCAlJcXsMrqE1j4rpdRmrXVma8e7XNcNQN/wANKie/DxVum+EUIIlwx6MAZlt5cfZdfBOrNLEUIIU7ls0E8f3AsPi2KxtOqFEG7OZYM+LMCHK/uG8u+ccmw25xqHEEKIy8llgx7guiHRlNXWs3H/IbNLEUII07h00F89IAJ/bw/pvhFCuDWXDnp/b0+yBkbyaV4FDU1Ws8sRQghTuHTQA8weEk1dQzMrCyvNLkUI4UIutHb9/v37SU1NvYzVXJjLB/2oPqGEBfjInHohhNtyuSUQzuVhUcwc3Iu3Nuzn8PFGgrt5m12SEOJilj0JB/Ic+5yRaTDl+fPe/cQTTxAfH8/9998PwK9//WuUUqxdu5bDhw/T1NTEb3/7W2bOnNmul21oaODHP/4x2dnZeHp68tJLLzF+/Hi2b9/OnXfeSWNjIzabjQ8//JBevXrxwx/+kNLSUqxWK7/4xS+44YYbOvS2wQ1a9GB03zRZNUvzKswuRQjhpObOnXt6gxGAhQsXcuedd/Lxxx+zZcsWVq1axc9+9rPzrmx5PvPmzQMgLy+P999/n9tvv52GhgZeeeUVHnnkEXJycsjOziYmJobly5fTq1cvtm3bRn5+PllZWQ55by7fogcYEBVIv4juLN5axq1XxJtdjhDiYi7Q8u4sGRkZVFZWUl5eTlVVFcHBwURFRfHoo4+ydu1aLBYLZWVlHDx4kMjIyDY/71dffcVDDz0EQHJyMvHx8ezatYuRI0fyu9/9jtLSUq677jqSkpJIS0vjscce44knnuDaa69lzJgxDnlvbtGiV0oxKyOazUWHKa45YXY5QggnNWfOHBYtWsSCBQuYO3cu7777LlVVVWzevJmcnBwiIiJoaGho13Oe7xfATTfdxJIlS/Dz82Py5MmsXLmSfv36sXnzZtLS0njqqad49tlnHfG23CPoAWalRwPIoKwQ4rzmzp3L/PnzWbRoEXPmzOHIkSOEh4fj5eXFqlWrKCoqavdzjh07lnfffReAXbt2UVxcTP/+/dm3bx+9e/fm4YcfZsaMGeTm5lJeXo6/vz+33HILjz32mMPWtneLrhuAXkF+XNE7hMU5ZTw8sS9KKbNLEkI4mYEDB1JXV0d0dDRRUVHcfPPNTJ8+nczMTNLT00lOTm73c95///3cd999pKWl4enpyZtvvomPjw8LFizgnXfewcvLi8jISH75y1+yadMmHn/8cSwWC15eXrz88ssOeV8uuR79+SzYVMwTH+ax+IHRpMcGdcprCCEujaxH33ayHv0FZKVG4e1pkSURhBBupU1Br5TKUkrtVErtUUo9eYHj5iiltFIq0349QSlVr5TKsV9ecVThl6KHnxdXp0TwybZymqw2M0sRQriAvLw80tPTz7qMGDHC7LK+56J99EopD2AecDVQCmxSSi3RWu8457gA4GHg23OeYq/WOt1B9XbYrIxoPs2rYN3uKiYkR5hdjhCiBa11lxo/S0tLIycn57K+5qV0t7elRT8c2KO13qe1bgTmA62dGvYc8ALQvrlHl9m4fmEE+3vx8dZys0sRQrTg6+tLTU3NJQWZu9BaU1NTg6+vb7se15ZZN9FASYvrpcBZv02UUhlArNZ6qVLqsXMen6iU2gocBZ7RWq9rV4UO5u1p4dpBvViYXUJdQxMBvl5mliOEsIuJiaG0tJSqqiqzS3Fqvr6+xMTEtOsxbQn61n5Hnf7KVUpZgD8Dd7RyXAUQp7WuUUoNBRYrpQZqrY+e9QJK3QvcCxAXF9fG0i/drIxo/u+bIpbnH+AHmbGd/npCiIvz8vIiMTHR7DJcUlu6bkqBlmkYA7Ts9wgAUoHVSqn9wBXAEqVUptb6pNa6BkBrvRnYC/Q79wW01q9qrTO11plhYWGX9k7aYUhcEPE9/VmcI7NvhBCury1BvwlIUkolKqW8gbnAklN3aq2PaK1DtdYJWusE4BtghtY6WykVZh/MRSnVG0gC9jn8XbSTUopZ6dGs31tDxZF6s8sRQohOddGg11o3Aw8CK4ACYKHWertS6lml1IyLPHwskKuU2gYsAu7TWjvFBq6zMqLRGpbkyKCsEMK1udWZseeaNe9rGpqsLP/J2MvyekII0VnkzNjzuG5INIUH6iioOHrxg4UQooty66CflhaFp0XJkghCCJfm1kHfs7sP4/qF8e+ccqw25+rCEkIIR3HroAdjm8EDRxv4dl+N2aUIIUSncPugn5QSQXcfTz6S7hshhIty+6D39fJgSmoky/MPUN9oNbscIYRwOLcPejC6b46dbOaLgoNmlyKEEA4nQQ9ckdiTqB6+sp+sEMIlSdADFotiRnov1uyqoubYSbPLEUIIh5Kgt5udEY3VplmaW2F2KUII4VAS9HbJkYGkRAXK7BshhMuRoG9hdkYvtpXUsq/qmNmlCCGEw0jQtzBjcDRKwWJZ0VII4UIk6FuI7OHL6D6hLN5aJvtWCiFchgT9OWZlRFN86ARbig+bXYoQQjiEBP05slIj8fWyyJx6IYTLkKA/R3cfT64ZEMnS3Aoam21mlyOEEB0mQd+K2RnR1J5oYvXOSrNLEUKIDpOgb8WVSaH07ObN4hzpvhFCdH2uFfSNJxzyNF4eFqYP7sUXBZUcqW9yyHMKIYRZXCfoj5TBvOGw6TWHPN3sjGgam20sy5MlEYQQXZvrBL1vIISnwKc/g+VPga1ja8sPiulB79BuMvtGCNHluU7Q+wTA3PdhxH3wzT9g/k1w8tKXMlBKMTsjmm+/O0RZbb0DCxVCiMvLdYIewMMTpvwRpv4Jdn8Ob2QZXTqXaGZ6NAD/lkFZIUQX5lpBf8rwe+CmD+DQfvjnBCjfeklPE9fTn8z4YD7eIksiCCG6LtcMeoCkSXDX5+DhBW9MhYKll/Q0szKi2V15jO3lRx1coBBCXB6uG/QAEQPg7i+NQdoFt8DXf4N2tsyvHRSFl4disQzKCiG6KNcOeoCACLjjUxgwE/7zC/jkYbC2fW58kL834/uH8+9t5TRbZUkEIUTX4/pBD+DlB3PegDGPwZa34Z3rob7tq1POzoimqu4k6/fWdGKRQgjROdwj6AEsFpj4C5j1MhSth39dA4f2temh45PDCfT1lO4bIUSX5D5Bf0r6TXDbYjheBa9NguJvLvoQXy8Ppg2KYvn2A5xobL4MRQohhOO0KeiVUllKqZ1KqT1KqScvcNwcpZRWSmW2uO0p++N2KqUmO6LoDku40hik9Q2Ct6ZD7sKLPmRWejQnGq18vv3gZShQCCEc56JBr5TyAOYBU4ABwI1KqQGtHBcAPAx82+K2AcBcYCCQBfzD/nzm69kH7v4CYobDR/fAqj9ccEbOsIQQooP8ZEkEIUSX05YW/XBgj9Z6n9a6EZgPzGzluOeAF4CGFrfNBOZrrU9qrb8D9tifzzn4h8CtH0P6zbDmefjwbmhqaPVQi0UxK6MX63ZXUVnX+jFCCOGM2hL00UBJi+ul9ttOU0plALFa63PPSrroY+2Pv1cpla2Uyq6qqmpT4Q7j6Q0z58HEX0H+Inh7BhyvbvXQ2RnR2DR8sk1WtBRCdB1tCXrVym2n+ziUUhbgz8DP2vvY0zdo/arWOlNrnRkWFtaGkhxMKRjzU/jBW1CxzVg2obLwe4f1DQ8gLbqHzL4RQnQpbQn6UiC2xfUYoLzF9QAgFVitlNoPXAEssQ/IXuyxzmXgLLjjM2iqN6Zf7l31vUNmZUSTV3aEPZV1JhQohBDt15ag3wQkKaUSlVLeGIOrS07dqbU+orUO1VonaK0TgG+AGVrrbPtxc5VSPkqpRCAJ2Ojwd+FIMUPhni+hR4xxYlX2G2fdPX1wFBaFDMoKIbqMiwa91roZeBBYARQAC7XW25VSzyqlZlzksduBhcAOYDnwgNa6YzuCXA5BcfCj5dBnAiz9Cax4+vRGJuEBvoxJCmPx1nJsNlnRUgjh/JSzLb+bmZmps7OzzS7DYG2GFU/Bxleh/zS4/p/g3Y3FW8v4yYIcFv6/kQxPDDG7SiGEQCm1WWud2dp97ndmbHt4eMLUF2HKC7BrGbyeBUfLuWZgBP7eHny8tdTsCoUQ4qIk6NtixP+DGxcYa+P8cwL+NdvJGhjJ0twKGpqcvydKCOHeJOjbqt818KMVoDzg9Sx+FFZAXUMzq3dWml2ZEEJckAR9e0SmGjNywpIZuPbHPOK/go82S/eNEMK5SdC3V0Ak3PEpKmU6j9reYvyeP1Bbd9zsqoQQ4rwk6C+Ftz/84C2qBt/PjR5fUv/m9VBfa3ZVQgjRKgn6S2WxEDrr9/zJ92HCajYaZ9Ie3m92VUII8T0S9B2glMJvxO3c2vgk1rqD8M+JUPztxR8ohBCXkQR9B83KiGaDbSDvpb4GPgH2jUw+uODa9kIIcTlJ0HdQdJAfIxJDeGOXF/ruLyB6KHx0N7yUAot+BJteg8oCsNnMLlUI4aY8zS7AFczOiObJj/LIPeTJ4NsWw7b3Yf9XsP9ryP/QOMgvBOJHQdxI48/IQcaZt0II0ckkaRxgSloUv1yynY+3ljE4diAMvcO4aA21RVC0Hoq+Nv4stO/N4t0dYkcYoR8/GqKHgKePmW9DCOGiJOgdoIefF5NSwvlkWzlPT0vBy8PeI6YUBCcYl/SbjNuOVkDxenv4r4eVzxm3e/hAzDB78I+C2OHg3c2MtyOEcDES9A4yKz2az/IO8NXuasYnh5//wMAoSL3euACcOATFG860+tf9CdbawOIJUelngj/uCvALvjxvRgjhUiToHeSq/uEE+Xvx8dayCwf9ufxDIHmacQE4WQcl355p8X/7Cqz/G6AgYmCL4B8FARGd8l6EEK5Fgt5BvD0tXDsoikWbSzl2spnuPpf40foEQN9JxgWgqQHKNp9p8W9911gfH6Bn3zN9/PGjjA1ThBDiHBL0DjQ7I5p3vilmef4B5gyNccyTevlCwmjjwuNgbYKK3DODuzv+DVveNo7tEXumxR8/2vgiUK3tzy6EcCcS9A40JC6YuBB/Fm8tc1zQn8vDy9jXNmYojH7YmJ9fueNMi3/vKshdYBzrHwq90iFqsNHf3yvd+DKQ8BfCrUjQO5BSilkZ0fx95W7yy46QGt2j81/UYjGWT45MhRH3GlM6a/YaoV+yESpyjPA/tVWvX4gR/C2/AIITJPwvh5N1sPtz4xyK0CSzqxFuRPaMdbDy2npmzfuaI/VNPDcrlR9mxppdktHPf3A7VGyFim1QnmM/W7fJuN+3x9mt/qh0CE40vkREx1UWGmdIb5sPjXXGjKoR98G4J8A30OzqhIu40J6xEvSdoKruJI/M38r6vTX8MDOGZ2em4uvlYXZZZ2s+aXT5lOcYrf6KbcaXgbXRuN8n0B7+Lb4AQvpI+LeVtQkKPzUCfv868PCGgddB+o2Q/5ExrtItDK7+DQyaK5+r6DAJehNYbZq/fLGLv6/cQ3JkAC/fMpTEUCc/Aaq5EaoKzrT6K3LgQD5YTxr3e3c3uh1advuEJoHFyb7EzHS0Ara8BZvfhLoK6BEHw34EGbdCt9Azx5VtgWX/BaWbjBPlprxgnB0txCWSoDfR6p2VPLoghyar5oU5g5iaFmV2Se1jbYKqnWda/eU5cCAPmuuN+726QWRai37/dAjt517r+GhtrG206TVjiQub1ZgeO+xuSLr6/F+ENhvkzof//AqOV8GQW2Hir87+QhCijSToTVZeW88D721ha3Etd4xK4OdTU/D27MI/1a3NULP77G6filxosm+p6OlnDA5H2Vv+MZkQlux6A74NR40ZTpteg6pC48zljFsg80cQ0rsdz3ME1rxgnBzn3Q3GPw2Zd7nXl6XoMAl6J9DYbOP5ZYW8/vV3pMcGMe/mIUQH+ZldluPYrFCz5+xun4pcY/ARoFs4JI6F3ldB73Fd++SugzuMcM9dAI3HoFcGDLsHUq8Drw78N63aCcuegH2rIHyA0Z2TOMZxdQuXJkHvRJblVfD4olw8PRR/viGd8f3bsVxCV2OzwaF9xlo+362BfWvgeKVxX3CiEfiJ44wvAGfvrmhuNLplNr1mTF318DHWKxp+t7EHgaNobbzOip9DbTEMnA3X/BZ6dNJ5GcJlSNA7me+qj/PjdzZTeKCOB8b34dFJ/fD06MJdOW2ltdHFsW+NEfz7v4KTR437ItLOBH/8KPDpbm6tpxwtNwZWN78Jxw5CUDwMu8sYXPUP6bzXbaqHr/8GX70EygJjfgojHzLOlBaiFRL0Tqihycqv/r2dBdkljOzdk7/emE54gJv9I7Y2G108+1YbwV/8rTHDx+IJ0Zlngj9mGHh6X766tIbv1toHVz8FbYOka4zB1b6TLu9UyNpiWPE0FCwxTmyb/AfoP8X1xjtEh0nQO7FFm0t5ZnEeAb5e/P3GDK7o3dPskszTVA/F35zp5qnIMULWy9/YmetU8EcO6pywbThinNS06TWo3mWcRTzkVhh6J4QkOv712mPvKqP/vnqn8WWT9UcI7WtuTcKpSNA7ucIDR7n/nS3srznOY5P7c9/YPlgs0mKjvtbo3jkV/NU7jdv9giFhjH1g9ypjhktHWrgHt8PGf0LuQmPmUPRQY3B14Gzn6iqxNhkrl65+3vhSHHk/jH3cWPFUuL0OB71SKgv4K+ABvKa1fv6c++8DHgCswDHgXq31DqVUAlAA2P+F8o3W+r4LvZY7Bj3AsZPNPPlhLktzK5iYHM5//3AwQf6XsbuiKzhaYXSpnAr+o6XG7YExZ1r7vcdBQOTFn6u50egO2fSaMVjs6Qupc4z+d2c/celYJXzxG8h5B7pHwtXPwqAfSneOm+tQ0CulPIBdwNVAKbAJuFFrvaPFMYFa66P2v88A7tdaZ9mDfqnWOrWtxbpr0ANorfm/b4p4bukOwgN8+cfNQxgcG2R2Wc5Ja2NGz75VRujvXwf1h437QvufCf6EK8GvxWd4pNQ+uPqWMQMoONEI9/SbO3dwtTOUZsNnj0P5Foi9Aqa+YJy3INxSR4N+JPBrrfVk+/WnALTWfzjP8TcCt2mtp0jQX5qckloeeHcLlXUNPDNtALeNjEdJa+3CbDY4kHumtV+8AZpOGDNWotKNKZw1e2DnZ8aXRL8sY3C1z4Suvc6MzWa07L/4DZyogcw7YcIvut6Xluiwjgb9HCBLa323/fqtwAit9YPnHPcA8FPAG5igtd5tD/rtGL8IjgLPaK3XtfIa9wL3AsTFxQ0tKipq1xt0RbUnGvnpwm2sLKzk2kFRPH/9oEvftcodNTca68icCv6ybGOVziG3GYOrwfFmV+hY9bVG3/3GV40++wnPGO9Tzq51Gx0N+h8Ak88J+uFa64fOc/xN9uNvV0r5AN211jVKqaHAYmDgqW6e1kiL/gybTfPK2r38acVOEkK78fLNQ+kfKQNvl6TxhLFpi4eX2ZV0roM7jMXS9q8zzk2Y+oJxXoJweRcK+rb8Zi0FWi6qHgOUX+D4+cAsAK31Sa11jf3vm4G9QL+2FC3AYlHcf1Vf3rvnCuoampk57ysWbS41u6yuydvf9UMeIGIA3P4J/OBNY8zijSmw6C7jxC/httoS9JuAJKVUolLKG5gLLGl5gFKq5XY504Dd9tvD7IO5KKV6A0nAPkcU7k6u6N2TTx++kvTYIB77YBtPLMqloclqdlnCWSllTA19cBOM/S8o+AT+ngnrXjL2IRBup63TK6cCf8GYXvm61vp3SqlngWyt9RKl1F+BSUATcBh4UGu9XSl1PfAs0Iwx9fJXWutPLvRa0nVzfs1WG3/+YhfzVu0lJSqQf9w8xPnXuBfmO/SdcXbtzk+Ncw6ynod+k82uyjkcq4Tti42T81CgMAbwW15Q59ym7BdHHKfO/rNbOCRPvaS3IidMuZhVhZU8ujCHZqvmxTmDmNLV1rgX5tjzhXF2bc0eSJoMw+81ZiNdzuUlnEHDUWPhuLwPjOU3tM04H8HiCWjj+lkXfc6ftvMfRwfzNDoT7vnykh4qQe+CymrreeDdLeSU1PKj0Yk8OSW5a69xLy6P5kZj3fu1LxoLyvn0gH7XQMp0Y2kFbxf9hdjUYGzMnvcB7FphrKkUFA9pP4C0ORCe4pjX0bptXwjnfnGcOtbiCd0vbUVbCXoX1dhs4/efFfDm+v0MiQvif24aQi9XWuNedJ6mBmPqacES2LnMmIPv6WucV5Ay3TjPoKvPxbc2G+8x/0NjnOLkUaNrJPU64yzomEyXOptYgt7FfZpbwRMf5uJlX+P+Klde4144nrXZOMGscCkULDWWllAekDAaUmZA8jQI7GV2lW2jtXH+RN4i2P6RsUWjT6DxPtKuh4SxLntugQS9G9hXdYz7393CzoN1PDS+L49M6oeHLIwm2ktrKN9qD/1PjFU8wVjoLWU6JE93zlUzD+6A/EVGwNcWGRvD9M8yWu5J1zjX4nSdRILeTdQ3Wvnlv/P5YHMpo/v25C83ZBAW4GN2WaIrq9ppBH7hUuMLACAsBVKuheRrjbV1zOr+OFxkdMvkLYLK7cavkN5XGX3uydeCb6A5dZlEgt7NLMwu4ReL8wnw9eK/svpz/ZAYad2LjqstMTZiKVxqbKeobdAj7kzox10BFo/OreFYFexYbAyqlnxr3BY7wmi5D5x1yQOZrkCC3g0VVBzlqY/yyCmpZUBUIM9MS2FUXyffl1V0HcerjUHcwqWwdyVYG8E/1JgDnjLDPm3TQb8mT0+HXGSfDmmF8IFGyz31etdbt+gSSdC7Ka01n+RW8MdlhZTV1jMpJYKnpibTJ8xJ9mMVruFkHez+j9HFs/tzaDwG3gHGSVkp10Lfq9u/B/Cp6ZD5i4zpkM0NEBRnTIdMnWMs9SDOIkHv5hqarLzx9X7mrdpDQ5OVW66I55GJSQR3c7MTZUTnOz1t8xNjSegTNcbAaJ8JRuj3mwLdzrNdprUZ9q81Wu6np0OGwcDrjNZ7zDCXmg7paBL0AoDqYyf583928f7GYrr7ePLQhCRuGxWPj2cn96sK92RthpJvjCmbBZ/Yp21aIH60fQbPNAiMNjZQyfsAtn9sbAbjHQADZhjdMonjXHY6pKNJ0Iuz7DpYx+8/K2D1ziriQvx5akoyWamRsrmJ6DxaG+vJnAr9U/v/+ofCiWqj1d9vstFyT7oGvOTEv/aSoBetWrOrit99uoNdB48xLCGYZ6YNkK0LxeVRtQsKPzE2Zu8z0ejW8e1hdlVdmgS9OK9mq42F2aW89J+dVB9rZHZGNI9P7i9LKQjRxUjQi4uqa2jilTV7+ee671DAPWN6c99VfWT7QiG6iI7uMCXcQICvF49PTmblz8aRlRrJ/6zaw1Uvrmb+xmKsNudqDAgh2keCXpwlJtifv87N4OP7RxHf058nP8pj2t/WsW53ldmlCSEukQS9aFVGXDCL7hvJP24ewvHGZm7910bufGMjuw/WmV2aEKKdJOjFeSmlmJoWxRc/HcfPpyaTvf8wWX9dxy8W51NzTPYeFaKrkKAXF+Xj6cG9Y/uw+vGruHlEHO9tLOaqF1fzypq9skm5EF2ABL1os57dfXh2ZiorfjKG4YkhPL+skEkvrWFpbjnONntLCHGGBL1ot77hAfzrjmG8c9cIuvt48uB7W7n+5fVsKT5sdmlCiFZI0ItLdmVSKJ8+PIY/Xp9GyeF6rvvHeh5+fyulh0+YXZoQogUJetEhHhbFDcPiWP3YVTw8oS+f7zjAhP9ewx+XF1LX0GR2eUIIJOiFg3Tz8eSn14g00EEAAA/vSURBVPRn5c+u4tq0KF5evZerXlzNu98W0Wy1mV2eEG5NlkAQnSK3tJbfLi1g4/5DJIZ24/aR8Vw/NIYAXy+zSxPCJclaN8IUWmtWbD/IK2v2klNSSzdvD64bEsNtI+NJiggwuzwhXIoEvTDdtpJa3t5QxCe55TQ22xjVpye3j0pgYnI4nh7SgyhER0nQC6dRc+wkC7JLeGdDEeVHGogO8uPmK+K4ITOWnt0dtJm0EG5Igl44nWarjS8KKnl7w37W763B29PC9EG9uH1UPINiZPMTIdpLgl44td0H63h7QxEfbinlRKOV9Nggbh8Vz9S0KNnPVog26vB69EqpLKXUTqXUHqXUk63cf59SKk8plaOU+kopNaDFfU/ZH7dTKTX50t+GcFVJEQE8NyuVb34+kV9PH8DR+iYeXbCNUX9YyZ9W7KTiSL3ZJQrRpV20Ra+U8gB2AVcDpcAm4Eat9Y4WxwRqrY/a/z4DuF9rnWUP/PeB4UAv4Augn9b6vCthSYte2Gyar/dW89b6Ir4sPIhFKSYPjOC2kQmMSAyRTcyFaMWFWvRt2SduOLBHa73P/mTzgZnA6aA/FfJ23YBT3x4zgfla65PAd0qpPfbn29DudyHchsWiGJMUxpikMEoOneCdb4qYv6mEz/IO0D8igNtGxTM7Ixp/b9nmUIi2aEvXTTRQ0uJ6qf22syilHlBK7QVeAB5uz2OFOJ/YEH+emprCN09N5IXrB+FhUTz9cT4jfv8lz36yg/3Vx80uUQin15YmUWu/k7/X36O1ngfMU0rdBDwD3N7Wxyql7gXuBYiLi2tDScLd+Hl78MNhsfwgM4YtxYd5a30Rb2/Yz+tff8dV/cO4fWQC4/qFYbFIt44Q52pL0JcCsS2uxwDlFzh+PvByex6rtX4VeBWMPvo21CTclFKKofEhDI0P4ZlpKby/sYR3vy3izjc3ERfiz20j4/nB0Fh6+MtSC0Kc0pbBWE+MwdiJQBnGYOxNWuvtLY5J0lrvtv99OvArrXWmUmog8B5nBmO/BJJkMFY4UpPVxvL8A7y9YT+b9h/G18vC7IxobhuZQEpUoNnlCXFZdGgwVmvdrJR6EFgBeACva623K6WeBbK11kuAB5VSk4Am4DBGtw324xZiDNw2Aw9cKOSFuBReHhamD+7F9MG92F5+hP/bUMTHW8t4f2MJwxNCuH1UAtcMjMBLlloQbkpOmBIuqfZEIx9kl/L2N/spOVRPRKAPc4bGMCU1ioG9AmWKpnA5cmascFtWm2bNrkreWl/EV3uqsdo0sSF+TE2NIis1kvTYIAl94RIk6IUADh1v5D87DrAs/wBf76mmyarp1cOXyamRTEmNYmh8MB4ya0d0URL0QpzjSH0TXxYc5LO8A6zdXUVjs42wAB8mD4xgamoUwxNDZPlk0aVI0AtxAcdONrOqsJJl+RWsKqyivslKSDdvrhkQQVZqJKP6hOLtKaEvnJsEvRBtVN9oZc2uSpblH+DLgkqOnWwm0NeTSQOMlv6VSaH4esmKmsL5SNALcQkamqx8vaeaZfkH+M+Ogxypb6KbtwcTUiKYmhrJuP5hst6OcBodXdRMCLfk6+XBxJQIJqZE0GS1sWFvDcvyK/h8+0E+2VaOr5eF8f3DyUqNZEJyuGx8LpyWtOiFaKdmq42N+w+xPP8Ay/MPUFl3Em9PC2OTQpmSGsWklAhZgkFcdtJ1I0Qnsdk0W4oPsyz/AMvyKig/0oCnRTG6byhTUiO5ZmAkId28zS5TuAEJeiEuA601uaVH+Cy/guX5ByiqOYGHRTEiMYQpqZFMHhhJeKCv2WUKFyVBL8RlprWmoKKOZfkVfJZXwd6q4ygFmfHBXD0gggnJ4fQJ6y5n5QqHkaAXwmS7D9YZ3Tv5ByioMDZkiwvxZ0JyOOOTwxmRGCLTNkWHSNAL4UTKautZVVjJqsJKvt5bTUOTDT8vD0b3DWViSjjj+4cT2UO6eET7SNAL4aQamqxs2FfDqsJKviyopKy2HoABUYGnW/vpsUGyBo+4KAl6IboArTW7K4+xsrCSlYWVbC46jNWmCenmzVX9whifHM7YfmH08JOpm+L7JOiF6IKOnGhi7e4qVhZWsnpnJYdPNOFhUQyND2ZCcjgTksNJCpcBXWGQoBeii7PaNDkltayyt/Z32Ad0Y4L9TnfxjOzdUwZ03ZgEvRAupuJIPasKjdb+13uqqW+y4utlYXSfUCbYB3R7BfmZXaa4jCTohXBhDU1Wvv3uECsLDrJyZyUlh4wB3eTIgNNdPBlxsqmKq5OgF8JNaK3ZW3VmQDd7/2GabZogf6/TA7rj+oUR5C/LMrgaCXoh3NSR+ibW2Qd01+ysouZ4IxYFQ+ODGdcvjLH9wkjt1QOLtPa7PAl6IQRWmya3tJaVhZWs2llJfpkxoBvs78WVSWGMSQplbFKYnKzVRUnQCyG+p/rYSb7eU82aXVWs211NVd1JAPpHBBih3y+M4bI0Q5chQS+EuCCtNYUH6lhrD/2N3x2i0WrDx9PC8MQQxvULY0xSGP0iZN6+s5KgF0K0S32jlW++q2HdrmrW7q5iT+UxACIDfRmTFMqYfmFc2TdU1tp3IrKVoBCiXfy8PRjf35iPD1BeW8+63VWs3VXN5zsO8sHmUpSCtOgejE0yBnUz4oLw8rCYXLlojbTohRDtcmpQd93uatbuqmJrSS1Wm6a7jycj+/RkrL1/P75nN7NLdSvSdSOE6DRH6pvYsLeGtburWLuritLDxglb8T39T8/kGdmnp2ye3skk6IUQl4XWmv01J+yDulWs31vDiUYrnhbFkLhgxvYLZUxSGGnRMnff0STohRCmaGy2sbnosNG/v7vqrLn7o/sarf0h8UH0Du0uwd9BEvRCCKdQc+wkX7Uyd7+7jyeDYnowODaIwTFBpMcGyYlb7dThoFdKZQF/BTyA17TWz59z/0+Bu4FmoAr4kda6yH6fFcizH1qstZ5xodeSoBfCPZxalyen5AjbSmrZVlpLQcVRmqxGJkUE+jA4JojBsUbwp8X0IFD6+c+rQ0GvlPIAdgFXA6XAJuBGrfWOFseMB77VWp9QSv0YuEprfYP9vmNa6+5tLVaCXgj31dBkpaDiKNtKaskpqWVb6RG+qz4OgFLQJ6y7vcVvtP6TIwPx9pQpndDxefTDgT1a6332J5sPzAROB73WelWL478Bbrn0coUQ7srXy4OMuGAy4oJP31Z7opHc0jOt/jW7KvlwSykA3h4WBvQKJD02iMGxPRgcE0RCz27S33+OtgR9NFDS4nopMOICx98FLGtx3VcplY3RrfO81nrxuQ9QSt0L3AsQFxfXhpKEEO4iyN+bsfaVNsHo8ik/0kBOsRH8OSW1LNhUwpvr9wMQ6Ot5urtncEwQg2J7EB7g3v39bQn61r4aW+3vUUrdAmQC41rcHKe1LldK9QZWKqXytNZ7z3oyrV8FXgWj66ZNlQsh3JJSiuggP6KD/Jg2KAqAZquNPVXH7F0+Ruv/H6v3YrUZcRId5He6xT84Noi06B5083GfhQHa8k5LgdgW12OA8nMPUkpNAp4GxmmtT566XWtdbv9zn1JqNZAB7D338UIIcak8PSwkRwaSHBnIDcOM2+obreSXH2nR31/LZ3kHALAoSAoPMMLf3vrvHxGAp4su4dCWoN8EJCmlEoEyYC5wU8sDlFIZwP8CWVrryha3BwMntNYnlVKhwGjgBUcVL4QQ5+Pn7cGwhBCGJYScvq3m2ElyS4+cDv7/7DjIwmyjv9/Py4NBMT3sYwRBZMQFuUyXz0WDXmvdrJR6EFiBMb3yda31dqXUs0C21noJ8CLQHfjAvoTpqWmUKcD/KqVsgAWjj35Hqy8khBCdrGd3H8YnhzM+2VisTWtN8aET5JTUsrW4lq0ltfzrq32np3hGB/nZQ98I/4G9AvHx7Hrr88sJU0II0UJDk5Xt5UfZWnyYrSW15BTXUlZrrN9zapbP6fCPDSIm2M8p1uiXM2OFEKIDDh5tsLf4D7O1uJbc0loammwAhHb3Od3VkxEbzKAYcwZ6ZT16IYTogIhAX7JSI8lKjQSgyWpj54E6tpbUsrX4MDnFRn8/GAO9/SPtrf5Yo+XfO9Tcuf3SohdCCAc4fLyRnFJ7X3/xYXJKaqlraAaMuf3p9q6ejDhjlk+Qv2N355IWvRBCdLLgbt5n7cpls2n2VR9jS/GZ8P/7yt3Yp/bTO6wbGbFnZvh05vROadELIcRlcuxkM7mnW/215JQcpvpYI2BM75yYEs7/3DTkkp5bWvRCCOEEuvt4MqpPKKP6hALG9M7Sw/VsKTYGef29O2fqpgS9EEKYRClFbIg/sSH+zEyP7rTXcc3zfYUQQpwmQS+EEC5Ogl4IIVycBL0QQrg4CXohhHBxEvRCCOHiJOiFEMLFSdALIYSLc7olEJRSVUBRB54iFKh2UDldnXwWZ5PP42zyeZzhCp9FvNY6rLU7nC7oO0oplX2+9R7cjXwWZ5PP42zyeZzh6p+FdN0IIYSLk6AXQggX54pB/6rZBTgR+SzOJp/H2eTzOMOlPwuX66MXQghxNlds0QshhGhBgl4IIVycywS9UipLKbVTKbVHKfWk2fWYSSkVq5RapZQqUEptV0o9YnZNZlNKeSiltiqllppdi9mUUkFKqUVKqUL7/yMjza7JTEqpR+3/TvKVUu8rpXzNrsnRXCLolVIewDxgCjAAuFEpNcDcqkzVDPxMa50CXAE84OafB8AjQIHZRTiJvwLLtdbJwGDc+HNRSkUDDwOZWutUwAOYa25VjucSQQ8MB/ZorfdprRuB+cBMk2syjda6Qmu9xf73Oox/yJ23T5mTU0rFANOA18yuxWxKqUBgLPAvAK11o9a61tyqTOcJ+CmlPAF/oNzkehzOVYI+Gihpcb0UNw62lpRSCUAG8K25lZjqL8B/ATazC3ECvYEq4A17V9ZrSqluZhdlFq11GfAnoBioAI5orT83tyrHc5WgV63c5vbzRpVS3YEPgZ9orY+aXY8ZlFLXApVa681m1+IkPIEhwMta6wzgOOC2Y1pKqWCMX/+JQC+gm1LqFnOrcjxXCfpSILbF9Rhc8OdXeyilvDBC/l2t9Udm12Oi0cAMpdR+jC69CUqpd8wtyVSlQKnW+tQvvEUYwe+uJgHfaa2rtNZNwEfAKJNrcjhXCfpNQJJSKlEp5Y0xmLLE5JpMo5RSGH2wBVrrl8yux0xa66e01jFa6wSM/y9Waq1drsXWVlrrA0CJUqq//aaJwA4TSzJbMXCFUsrf/u9mIi44OO1pdgGOoLVuVko9CKzAGDV/XWu93eSyzDQauBXIU0rl2G/7udb6MxNrEs7jIeBde6NoH3CnyfWYRmv9rVJqEbAFY7baVlxwOQRZAkEIIVycq3TdCCGEOA8JeiGEcHES9EII4eIk6IUQwsVJ0AshhIuToBdCCBcnQS+EEC7u/wNwqZJBcU12vwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(history.epoch, history.history.get('loss'), label='loss')\n",
    "plt.plot(history.epoch, history.history.get('val_loss'), label='val_loss')\n",
    "plt.legend()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x23d1e222860>"
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(history.epoch, history.history.get('acc'), label='acc')\n",
    "plt.plot(history.epoch, history.history.get('val_acc'), label='val_acc')\n",
    "plt.legend()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "过拟合： 在训练数据上得分很高， 在测试数据上得分相对比较低"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "欠拟合：  在训练数据上得分比较低， 在测试数据上得分相对比较低"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [],
   "source": [
    "model = tf.keras.Sequential()\n",
    "model.add(tf.keras.layers.Flatten(input_shape=(28,28)))  # 28*28\n",
    "model.add(tf.keras.layers.Dense(32, activation='relu'))\n",
    "model.add(tf.keras.layers.Dense(10, activation='softmax'))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [],
   "source": [
    "model.compile(optimizer=tf.keras.optimizers.Adam(learning_rate=0.001),\n",
    "              loss='categorical_crossentropy',\n",
    "              metrics=['acc']\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train on 60000 samples, validate on 10000 samples\n",
      "Epoch 1/10\n",
      "60000/60000 [==============================] - 2s 39us/sample - loss: 0.5556 - acc: 0.8100 - val_loss: 0.4772 - val_acc: 0.8343\n",
      "Epoch 2/10\n",
      "60000/60000 [==============================] - 2s 35us/sample - loss: 0.4241 - acc: 0.8527 - val_loss: 0.4320 - val_acc: 0.8490\n",
      "Epoch 3/10\n",
      "60000/60000 [==============================] - 2s 35us/sample - loss: 0.3888 - acc: 0.8629 - val_loss: 0.4104 - val_acc: 0.8556\n",
      "Epoch 4/10\n",
      "60000/60000 [==============================] - 2s 36us/sample - loss: 0.3657 - acc: 0.8704 - val_loss: 0.4739 - val_acc: 0.8276\n",
      "Epoch 5/10\n",
      "60000/60000 [==============================] - 2s 36us/sample - loss: 0.3501 - acc: 0.8754 - val_loss: 0.3900 - val_acc: 0.8595\n",
      "Epoch 6/10\n",
      "60000/60000 [==============================] - 2s 35us/sample - loss: 0.3370 - acc: 0.8793 - val_loss: 0.3835 - val_acc: 0.8643\n",
      "Epoch 7/10\n",
      "60000/60000 [==============================] - 2s 35us/sample - loss: 0.3243 - acc: 0.8830 - val_loss: 0.3719 - val_acc: 0.8679\n",
      "Epoch 8/10\n",
      "60000/60000 [==============================] - 2s 33us/sample - loss: 0.3140 - acc: 0.8865 - val_loss: 0.3820 - val_acc: 0.8637\n",
      "Epoch 9/10\n",
      "60000/60000 [==============================] - 2s 37us/sample - loss: 0.3051 - acc: 0.8885 - val_loss: 0.3636 - val_acc: 0.8699\n",
      "Epoch 10/10\n",
      "60000/60000 [==============================] - 2s 36us/sample - loss: 0.2981 - acc: 0.8911 - val_loss: 0.3556 - val_acc: 0.8750\n"
     ]
    }
   ],
   "source": [
    "history = model.fit(train_image, train_label_onehot, \n",
    "                    epochs=10, \n",
    "                    validation_data=(test_image, test_label_onehot))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x23d3f7da278>"
      ]
     },
     "execution_count": 54,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(history.epoch, history.history.get('acc'), label='acc')\n",
    "plt.plot(history.epoch, history.history.get('val_acc'), label='val_acc')\n",
    "plt.legend()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
